package red.mlz.module.module.smstask.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import red.mlz.module.module.smstask.entity.SmsTask;

import java.util.List;

@Mapper
public interface SmsTaskMapper {

    // 根据ID查询操作
    @Select("SELECT * FROM sms_task WHERE sms_task_id =  #{smsTaskId} AND is_deleted=0")
    SmsTask getById(Long sms_taskId);

    // 根据ID提取操作
    @Select("SELECT * FROM sms_task WHERE sms_task_id =  #{smsTaskId}")
    SmsTask extractById(Long sms_taskId);

    // 插入操作
    Integer insert(SmsTask sms_task);

    // 更新操作
    Integer update(SmsTask sms_task);

    // 删除操作
    @Update("UPDATE sms_task SET update_time = #{updateTime} , is_deleted = 1 WHERE sms_task_id = #{smsTaskId}")
    Integer delete(@Param("updateTime") Integer updateTime, @Param("sms_taskId")  Long sms_taskId);

    // 根据状态查询任务
    @Select("SELECT * FROM sms_task WHERE status = #{status} AND is_deleted=0")
    List<SmsTask> findByStatus(Integer status);

    // 更新任务状态
    @Update("UPDATE sms_task SET status = #{status}, update_time = #{updateTime} WHERE id = #{id}")
    void updateStatus(Long id, int status, Integer updateTime);
}

